/*
 * Clase que permite manipular de forma sencialla una lista.
 */
package tools.arrayLists;

import tools.GUI.PanelGUI;
import java.util.ArrayList;

/**
 *
 * @author Félix Marín Ramírez | felixmurcia@gmail.com
 * @version 1.0
 */
public class VectorLista implements java.io.Serializable {

    /**
     *
     * @param al ArrayList pasado como argumento al cual se le va a añadir un
     * nuevo valor.
     * @param ob Parámetro de tipo Object genérico el cual será
     * <strong>agregado</strong> a la lista.
     */
    public void añadir(ArrayList al, Object ob) {
        al.add(ob);
    }

    /**
     *
     * @param al ArrayList pasado como argumento al cual se le va a añadir un
     * nuevo valor.
     * @param ob Parámetro de tipo Object genérico el cual será
     * <strong>eliminado</strong> de la lista. En el caso de que no se encuentre
     * el objeto buscado en la lista devolverá un mensaje de error.
     */
    public void eliminar(ArrayList al, Object ob) {
        if (al.contains(ob)) {
            al.remove(ob);
        } else {
            PanelGUI.mensajeError("El elemento buscado no se encuentra en la lista.");
        }
    }

    /**
     *
     * @param al ArrayList pasado como argumento al cual se le va a eliminar un
     * nuevo valor.
     * @param indice Parámetro de tipo entero que representa al índece del valor
     * a eliminar. En el caso de que no se encuentre el objeto buscado en la
     * lista devolverá un mensaje de error.
     */
    public void eliminar(ArrayList al, int indice) {
        if (al.get(indice) != null) {
            al.remove(indice);
        } else {
            PanelGUI.mensajeError("El elemento buscado no se encuentra en la lista.");
        }
    }

    /**
     *
     * @param al ArrayList pasado como argumento donde se buscará el valor.
     * @param ob Parámetro de tipo Object genérico el cual será
     * <strong>buscado</strong> de la lista. En el caso de que no se encuentre
     * el objeto buscado en la lista devolverá un mensaje de error.
     */
    public void posicionObjeto(ArrayList al, Object ob) {
        if (al.contains(ob)) {
            al.indexOf(ob);
        } else {
            PanelGUI.mensajeError("El elemento buscado no se encuentra en la lista.");
        }
    }

    /**
     *
     * @param al ArrayList pasado como argumento el cual será vaciado.
     */
    public void vaciar(ArrayList al) {
        al.clear();
    }

    /**
     * 
     * @param al ArrayList pasado como argumento del cual se mostrará su contenido.
     */
    public void mostrarContenido(ArrayList al) {

        String cadena = "";
        for (int i = 0; i < al.size(); i++) {
            cadena += al.get(i) + "\n";
        }
        PanelGUI.informacion(cadena);
    }
}
